# -*- coding: utf-8 -*-
"""
@Time    : 2024/9/5 19:42 
@Author  : ZhangShenao 
@File    : 1.水仙花数.py 
@Desc    : 水仙花数
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数
它是一个3位数,该数字各位上数字的立方之和正好等于它本身
例如：1^3+5^3+3^3=153
"""


def find_narcissistic_number() -> list[int]:
    """找到所有水仙花数,返回一个列表"""

    narcissistic_numbers: list[int] = []

    # 在[100,1000)范围内,寻找水仙花数
    for num in range(100, 1000):
        # 分别获取个位、十位和百位的数字
        low = num % 10
        mid = (num // 10) % 10
        high = num // 100

        # 判断是否为水仙花数
        if num == low ** 3 + mid ** 3 + high ** 3:
            narcissistic_numbers.append(num)

    return narcissistic_numbers


if __name__ == '__main__':
    narcissistic_numbers = find_narcissistic_number()
    print(narcissistic_numbers)
